Google Drive 的 權限管理讓我們控制誰可以存取、編輯或分享我們的檔案和資料夾
在 GAS 中, 我們可以透過 DriveApp 類別來管理這些權限!
以下是一些常用的權限管理方法:
getSharingPermission()
function getPermissions() {
  var file = DriveApp.getFileById('FILE_ID');
  var permission = file.getSharingPermission();
  Logger.log('Current sharing permission is: ' + permission);
}
setSharing()
function setPermissions() {
  var file = DriveApp.getFileById('FILE_ID');
  file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
  Logger.log('File is now accessible by anyone with the link');
}
addEditor()
function addUserPermission() {
  var file = DriveApp.getFileById('FILE_ID');
  file.addEditor('user@example.com');
  Logger.log('Editor permission granted to user@example.com');
}
removeEditor
function removeUserPermission() {
  var file = DriveApp.getFileById('FILE_ID');
  file.removeEditor('user@example.com');
  Logger.log('Editor permission removed from user@example.com');
}
getEditors()  getViewers()
function getAllPermissionUsers() {
  var file = DriveApp.getFileById('FILE_ID');
  var editors = file.getEditors();
  var viewers = file.getViewers();
  
  Logger.log('Editors:');
  for (var i = 0; i < editors.length; i++) {
    Logger.log(editors[i].getEmail());
  }
  
  Logger.log('Viewers:');
  for (var i = 0; i < viewers.length; i++) {
    Logger.log(viewers[i].getEmail());
  }
}
Google Apps Script 的 DriveApp 類並不提供更換擁有者的功能
因為這項操作涉及更高的權限管理,但能透過 Google Drive 的進階 API(Drive API v2)來進行。
要更換檔案的擁有者,您可以使用 Drive API v3,具體步驟如下:
修改 Google Apps Script 設定:
服務 > 進階的Google服務,啟用 Drive API v2。使用 Drive API v2 更換擁有者:
function transferOwnership() {
  var fileId = 'FILE_ID'; // 要更換擁有者的檔案ID
  var newOwnerEmail = 'newowner@example.com'; // 新擁有者的電子郵件
  
  var permissions = Drive.Permissions.insert(
    {
      'role': 'owner',          // 設定為擁有者
      'type': 'user',
      'value': newOwnerEmail,
      'transferOwnership': true // 這個屬性要設為 true,表示移交擁有權
    },
    fileId,
    {
      'supportsAllDrives': true // 支援共享網路磁碟
    }
  );
  
  Logger.log('Ownership transferred to ' + newOwnerEmail);
}
這段程式碼會將檔案的擁有權移交給指定的使用者
如果您沒有適當的權限或嘗試移交給不是同一 Google Workspace 網域的使用者,這項操作可能不會成功唷!
使用GAS管理 Google Drive 權限時, 有幾個重要的注意事項:
學會操作跟權限管理後,那就來實戰演練吧!